package com.qqtech.qquan.sys.service;

import java.util.List;

import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.sys.model.SysFunction;
import com.qqtech.qquan.sys.model.SysFunctionQuery;
import com.qqtech.qquan.sys.model.SysFunctionVo;

public interface SysFunctionService extends BaseService<SysFunction> {
	/**
	 * 根据上级id查询。
	 * @param sysFunction
	 * @return
	 */
	public List<SysFunctionVo> queryListByParentId(SysFunctionQuery sysFunction);
	
	/**
	 * 取最大的排序
	 * @return
	 */
	public Integer getMaxOrderIdx();
	
	/**
	 * 移动菜单
	 * @param targetId 目标菜单id
	 * @param sourceId 源菜单id
	 * @param point 操作类型	取值范围: append,top,bottom
	 * @return 1成功
	 */
	public int move(Integer targetId, Integer sourceId, String point);
	
	/**
	 * 获取子功能
	 * @param parentId	父功能ID,当parentId==null时,返回顶级功能
	 * @param status	状态,当status==null时,返回所有状态的功能
	 * @return
	 */
	public List<SysFunctionVo> queryChildrenList(Integer parentId, Integer status);
	
	/**
	 * 获取角色关联的子功能
	 * @param roleIds		角色ID
	 * @param parentId		父功能ID,当parentId==null时,返回顶级功能
	 * @param status		状态,当status==null时,返回所有状态的功能
	 * @return
	 */
	public List<SysFunctionVo> queryChildrenForRoleList(String roleIds,Integer parentId,Integer status);
}